package generation;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * ExtendedFile améliore la classe File en ajoutant une méthode transformant le
 * contenu d'un fichier en chaîne de caractère
 * 
 */
public class ExtendedFile extends File {
	/**
	 * 
	 */
	private static final long serialVersionUID = -1038400953243905621L;
	/**
	 * chemin vers le fichier
	 */
	private String pathname;

	/**
	 * Constructeur 
	 * @param _pathname
	 * 		nom du fichier
	 */
	public ExtendedFile(String _pathname) {
		super(_pathname);
		this.pathname = _pathname;
	}

	/**
	 * Cette méthode permet de transformer le fichier en string
	 * @return String
	 * 		renvoie la chaîne de caractère du contenu du fichier
	 */
	public String toString() {
		BufferedReader read;
		String tmp = "";
		try {
			read = new BufferedReader(new FileReader(pathname));
			while (read.ready()) {
				tmp += read.readLine() + "\n";
			}
		} catch (NullPointerException a) {
			System.out.println("Erreur : pointeur null");
		} catch (IOException a) {
			System.out.println("Problème d'IO");
		}
		return tmp;
	}

	/**
	 * Cette méthode permet d'écrire le contenu d'un String dans le fichier
	 * 
	 * @param in
	 * 		String à écrire dans le fichier
	 */
	public void writeFile(String in) {
		try {
			PrintWriter writer = new PrintWriter(new FileWriter(this.pathname));
			writer.print(in);
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
